package com.ruoyi.system.domain;


import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

/**
 * 小程序用户额外信息对象 user_additional_info
 * 
 * @author chen
 * @date 2025-06-10
 */
@Schema(description = "小程序用户额外信息对象")
public class UserAdditionalInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;


    /** 自增ID */
    @Schema(title = "自增ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /** 用户ID */
    @Schema(title = "用户ID")
    @Excel(name = "用户ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    /** 出生日期 */
    @Schema(title = "出生日期")
    @Excel(name = "出生日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;

    /** 个人简介 */
    @Schema(title = "个人简介")
    @Excel(name = "个人简介")
    private String bio;


    /** 总获得积分 */
    @Schema(title = "总获得积分")
    @Excel(name = "总获得积分")
    private Long totalPoints;

    /** 当前积分 */
    @Schema(title = "当前积分")
    @Excel(name = "当前积分")
    private Long currentPoints;
    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }


    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }


    public void setBirthday(LocalDate birthday) 
    {
        this.birthday = birthday;
    }

    public LocalDate getBirthday() 
    {
        return birthday;
    }


    public void setBio(String bio) 
    {
        this.bio = bio;
    }

    public String getBio() 
    {
        return bio;
    }

    public void setTotalPoints(Long totalPoints) 
    {
        this.totalPoints = totalPoints;
    }

    public Long getTotalPoints() 
    {
        return totalPoints;
    }


    public void setCurrentPoints(Long currentPoints) 
    {
        this.currentPoints = currentPoints;
    }

    public Long getCurrentPoints() 
    {
        return currentPoints;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("birthday", getBirthday())
            .append("bio", getBio())
            .append("totalPoints", getTotalPoints())
            .append("currentPoints", getCurrentPoints())
            .toString();
    }
}
